Electronic image sensors and imaging systems require timing signals to operate. For area image sensors, sensors are composed of rows and columns of picture elements—pixels—that capture a complete image. The pixels are read out in raster fashion. For example, the rows of the image are accessed one at a time in order from top to bottom, and the individual pixels within a row are accessed one at a time from right to left. In this example, timing signals must be provided to control accessing the rows, and other timing signals must be provided to control accessing the individual pixels. In addition, other timing signals must be provided to control sampling and processing the output signal for each pixel as it emerges from the image sensor. Additional timing signals are required to control electronic exposure, and the various timing signals may be operated in various ways to provide different ways of reading out the image sensor.
A timing generator provides the timing signals required to operate an electronic imaging system. Timing generators are typically register/counter based, with the functionality of the timing generator targeted at a specific or limited class of image sensors or applications. Because the scope of sensors and applications is limited, many of the timing functions required are fixed or restricted in flexibility, so the timing generator may be implemented by employing fixed logic structures that are specific to the image sensor and application at hand. The resulting timing generator is fairly small but not very flexible, and each class of image sensor or application requires a unique timing generator design. Because of the difficulty and time required to develop a new timing generator for each specific situation, it is desirable to have a single timing generator that provides the flexibility to handle a wide range of image sensors and applications; it is also desirable to provide that flexibility without incurring a significant penalty in size or complexity of the timing generator.
The notion of using a memory-based table instead of fixed logic structures to control timing for an image sensor has been disclosed previously. For example, U.S. Pat. No. 5,442,465 describes a system for controlling reading out and sampling the image signal from a linear image sensor. In this system, each pixel of the linear image sensor has a corresponding set of locations in a memory that controls several different timing signals that are operated during the readout of the pixel: clock signals to the image sensor, sampling signals to the analog signal processing circuitry, a clock signal for the analog to digital converter, and signals to control digitally processing and storing the resulting digital value. This memory-based approach is very flexible, and memory structures in integrated circuits are typically very compact and efficient. This concept could be extended to an area image sensor by providing memory locations that describe the required timing signals for each pixel of the image sensor. Unfortunately, the resulting memory would be very large: area image sensors may be composed of up to 16 million pixels or larger, and each pixel might require many bits of memory to control all the timing functions. Therefore, directly extending this concept to an area image sensor would lead to very large memory sizes.
Consequently, a need exists for overcoming the above-described drawbacks. For example, a need exists to have a highly flexible timing generator for controlling a broad range of electronic image sensors in a variety of electronic imaging applications without incurring the penalties in control logic, memory size, or overall complexity that have been described in the foregoing paragraphs.